/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package eistar.util;

import eistar.*;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notifier;

import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * The <b>Adapter Factory</b> for the model.
 * It provides an adapter <code>createXXX</code> method for each class of the model.
 * <!-- end-user-doc -->
 * @see eistar.EistarPackage
 * @generated
 */
public class EistarAdapterFactory extends AdapterFactoryImpl {
	/**
	 * The cached model package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static EistarPackage modelPackage;

	/**
	 * Creates an instance of the adapter factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EistarAdapterFactory() {
		if (modelPackage == null) {
			modelPackage = EistarPackage.eINSTANCE;
		}
	}

	/**
	 * Returns whether this factory is applicable for the type of the object.
	 * <!-- begin-user-doc -->
	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
	 * <!-- end-user-doc -->
	 * @return whether this factory is applicable for the type of the object.
	 * @generated
	 */
	@Override
	public boolean isFactoryForType(Object object) {
		if (object == modelPackage) {
			return true;
		}
		if (object instanceof EObject) {
			return ((EObject)object).eClass().getEPackage() == modelPackage;
		}
		return false;
	}

	/**
	 * The switch that delegates to the <code>createXXX</code> methods.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EistarSwitch<Adapter> modelSwitch =
		new EistarSwitch<Adapter>() {
			@Override
			public Adapter caseSituation(Situation object) {
				return createSituationAdapter();
			}
			@Override
			public Adapter caseIncludeRelation(IncludeRelation object) {
				return createIncludeRelationAdapter();
			}
			@Override
			public Adapter caseImportRelation(ImportRelation object) {
				return createImportRelationAdapter();
			}
			@Override
			public Adapter caseEntity(Entity object) {
				return createEntityAdapter();
			}
			@Override
			public Adapter caseGoal(Goal object) {
				return createGoalAdapter();
			}
			@Override
			public Adapter caseActor(Actor object) {
				return createActorAdapter();
			}
			@Override
			public Adapter caseModel(Model object) {
				return createModelAdapter();
			}
			@Override
			public Adapter caseSubModel(SubModel object) {
				return createSubModelAdapter();
			}
			@Override
			public Adapter caseSubModelInclusion(SubModelInclusion object) {
				return createSubModelInclusionAdapter();
			}
			@Override
			public Adapter caseRelation(Relation object) {
				return createRelationAdapter();
			}
			@Override
			public Adapter caseTeraryRelation(TeraryRelation object) {
				return createTeraryRelationAdapter();
			}
			@Override
			public Adapter caseEvolutionModel(EvolutionModel object) {
				return createEvolutionModelAdapter();
			}
			@Override
			public Adapter caseEvolutionRule(EvolutionRule object) {
				return createEvolutionRuleAdapter();
			}
			@Override
			public Adapter caseEvolutionBranch(EvolutionBranch object) {
				return createEvolutionBranchAdapter();
			}
			@Override
			public Adapter caseEvolutionOperation(EvolutionOperation object) {
				return createEvolutionOperationAdapter();
			}
			@Override
			public Adapter caseEvolutionAddOperation(EvolutionAddOperation object) {
				return createEvolutionAddOperationAdapter();
			}
			@Override
			public Adapter caseEvolutionRemoveOperation(EvolutionRemoveOperation object) {
				return createEvolutionRemoveOperationAdapter();
			}
			@Override
			public Adapter defaultCase(EObject object) {
				return createEObjectAdapter();
			}
		};

	/**
	 * Creates an adapter for the <code>target</code>.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param target the object to adapt.
	 * @return the adapter for the <code>target</code>.
	 * @generated
	 */
	@Override
	public Adapter createAdapter(Notifier target) {
		return modelSwitch.doSwitch((EObject)target);
	}


	/**
	 * Creates a new adapter for an object of class '{@link eistar.Situation <em>Situation</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see eistar.Situation
	 * @generated
	 */
	public Adapter createSituationAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link eistar.IncludeRelation <em>Include Relation</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see eistar.IncludeRelation
	 * @generated
	 */
	public Adapter createIncludeRelationAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link eistar.ImportRelation <em>Import Relation</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see eistar.ImportRelation
	 * @generated
	 */
	public Adapter createImportRelationAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link eistar.Entity <em>Entity</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see eistar.Entity
	 * @generated
	 */
	public Adapter createEntityAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link eistar.Goal <em>Goal</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see eistar.Goal
	 * @generated
	 */
	public Adapter createGoalAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link eistar.Actor <em>Actor</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see eistar.Actor
	 * @generated
	 */
	public Adapter createActorAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link eistar.Model <em>Model</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see eistar.Model
	 * @generated
	 */
	public Adapter createModelAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link eistar.SubModel <em>Sub Model</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see eistar.SubModel
	 * @generated
	 */
	public Adapter createSubModelAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link eistar.SubModelInclusion <em>Sub Model Inclusion</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see eistar.SubModelInclusion
	 * @generated
	 */
	public Adapter createSubModelInclusionAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link eistar.Relation <em>Relation</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see eistar.Relation
	 * @generated
	 */
	public Adapter createRelationAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link eistar.TeraryRelation <em>Terary Relation</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see eistar.TeraryRelation
	 * @generated
	 */
	public Adapter createTeraryRelationAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link eistar.EvolutionModel <em>Evolution Model</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see eistar.EvolutionModel
	 * @generated
	 */
	public Adapter createEvolutionModelAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link eistar.EvolutionRule <em>Evolution Rule</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see eistar.EvolutionRule
	 * @generated
	 */
	public Adapter createEvolutionRuleAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link eistar.EvolutionBranch <em>Evolution Branch</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see eistar.EvolutionBranch
	 * @generated
	 */
	public Adapter createEvolutionBranchAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link eistar.EvolutionOperation <em>Evolution Operation</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see eistar.EvolutionOperation
	 * @generated
	 */
	public Adapter createEvolutionOperationAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link eistar.EvolutionAddOperation <em>Evolution Add Operation</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see eistar.EvolutionAddOperation
	 * @generated
	 */
	public Adapter createEvolutionAddOperationAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link eistar.EvolutionRemoveOperation <em>Evolution Remove Operation</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see eistar.EvolutionRemoveOperation
	 * @generated
	 */
	public Adapter createEvolutionRemoveOperationAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for the default case.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @generated
	 */
	public Adapter createEObjectAdapter() {
		return null;
	}

} //EistarAdapterFactory
